MAKEINDEX(1L) MAKEINDEX(1L) NAME makeindex−ageneralpurpose,formatter-independentindexprocessor SYNOPSIS makeindex[−c][−g][−i][−l][−oind][−pnum][−q][−r][−ssfile][−tlog][idx0idx1 idx2...] DESCRIPTION Theprogrammakeindexisageneralpurposehierarchicalindexgenerator;itacceptsoneormore inputfiles(oftenproducedbyatextformattersuchasTEX(tex(1L))ortroff(1),sortstheentries, andproducesanoutputfilewhichcanbeformatted.Theindexcanhaveuptothreelevels(0,1, and2)ofsubitemnesting.Thewayinwhichwordsareflaggedforindexingwithinthemaindocumentisspecifictotheformatterused;makeindexdoesnotautomatetheprocessofselecting thesewords.Astheoutputindexishierarchical,makeindexcanbeconsideredcomplimentaryto theawk(1)-basedmake.index(1L)systemofBentleyandKernighan,whichisspecifictotroff(1), generatesnon-hierarchicalindices,andemploysamuchsimplersyntaxforindicatingindexentries. ForillustrationofusewithtroffandTEX,seethesectionEXAMPLESbelow. Theformatsoftheinputandoutputfilesarespecifiedinastylefile;bydefault,inputisassumed tobea.idxfile,asgeneratedbyLATEX. Unlessspecifiedexplicitly,thebasenameofthefirstinputfile(idx0)isusedtodeterminethe namesofotherfiles.Foreachinputfilenamespecified,afileofthatnameissought.Ifthisfileis notfoundandthefilenamehasnoextension,theextension.idxisappended.Ifnofilewiththis nameisfound,makeindexaborts. Forimportantnotesonhowtoselectindexkeywords,seethedocumentbyLamportcitedbelow. Asanissueseparatefromselectingindexkeywords,asystematicmechanismforplacingindex termsinadocumentissuggestedinIndexPreparationandProcessing,apapercitedbelow. OPTIONS −cCompressintermediateblanks(ignoringleadingandtrailingblanksandtabs).By default,blanksintheindexkeyareretained. −gEmployGermanwordorderingintheindex,inaccordwithrulessetforthinDIN 5007.Bydefault,makeindexemploysawordorderinginwhichprecedenceis:symbols, numbers,uppercaseletters,lowercaseletters.ThesequenceinGermanwordordering is:symbols,lowercaseletters,uppercaseletters,numbers.Additionally,thisoption enablesmakeindextorecognizetheGermanTEX-commands{"a,"o,"uand"s}as {ae,oe,ueandss}duringthesortingoftheentries.Thequotecharactermustbe redefinedinastylefile(forexample,redefinequoteas’+’).Ifthequotecharacteris notredefined,makeindexwillproduceanerrormessageandabort. −iTakeinputfromstdin.Whenthisoptionisspecifiedand−oisnot,outputiswritten tostdout. −lLetterordering;bydefault,wordorderingisused(seetheORDERINGsection). −oindEmployindastheoutputindexfile.Bydefault,thefilenameiscreatedbyappending theextension.indtothebasenameofthefirstinputfile(idx0). −pnumSetthestartingpagenumberoftheoutputindexfiletobenum(usefulwhenthe indexfileistobeformattedseparately).Theargumentnummaybenumericalorone ofthefollowing: anyThestartingpageisthelastsourcepagenumberplus1. oddThestartingpageisthefirstoddpagefollowingthelastsourcepagenumber. evenThestartingpageisthefirstevenpagefollowingthelastsourcepagenumber. 01October1991 -1-MAKEINDEX(1L) MAKEINDEX(1L) Thelastsourcepageisobtainedbysearchingbackwardinthelogfileforthefirst instanceofanumberincludedwithinpairedsquarebrackets([...]).Ifapagenumber ismissingorthelogfileisnotfound,noattemptwillbemadetosetthestartingpage number.Thesourcelogfilenameisdeterminedbyappendingtheextension.logtothe basenameofthefirstinputfile(idx0). −qQuietmode;sendnomessagestostderr.Bydefault,progressanderrormessagesare senttostderraswellastothetranscriptfile. −rDisableimplicitpagerangeformation;pagerangesmustbecreatedbyusingexplicit rangeoperators;seeSPECIALEFFECTSbelow.Bydefault,threeormoresuccessive pagesareautomaticallyabbreviatedasarange(e.g.1—5). −sstyEmploystyasthestylefile(nodefault).TheenvironmentvariableINDEXSTYLE definesthepathwherethestylefileshouldbefound. −tlogEmploylogasthetranscriptfile.Bydefault,thefilenameiscreatedbyappending theextension.ilgtothebasenameofthefirstinputfile(idx0). STYLEFILE Thestylefileinformsmakeindexabouttheformatofthe.idxinputfilesandtheintendedformat ofthefinaloutputfile;examplesappearbelow.Thisfilecanresideanywhereinthepathdefined bytheenvironmentvariableINDEXSTYLE.Thestylefilecontainsalistof<specifier,attribute> pairs.Therearetwotypesofspecifiers:inputandoutput.Pairsdonothavetoappearinany particularorder.Alinebegunby‘%’isacomment.Inthefollowinglistofspecifiersandarguments,<string>isanarbitrarystringdelimitedbydoublequotes("..."),<char>isasingleletterembracedbysinglequotes(’...’),and<number>isanonnegativeinteger.Themaximum lengthofa<string>is2048.Aliteralbackslashorquotemustbeescaped(byabackslash). Anythingnotspecifiedinthestylefilewillbeassignedadefaultvalue,whichisshownatthehead oftherightmostcolumn. INPUTSTYLESPECIFIERS actual<char>´ @´ Symbolindicatingthatthenextentryistoappearintheoutputfile. argclose<char>´ }´ Closingdelimiterfortheindexentryargument. argopen<char>´ {´ Openingdelimiterfortheindexentryargument. encap<char>´ |´ Symbolindicatingthattherestoftheargumentlististobeusedas theencapsulatingcommandforthepagenumber. escape<char>´ \\´ Symbolwhichescapesthefollowingletter,unlessitsprecedingletter isescape.Note:quoteisusedtoescapetheletterwhichimmediatelyfollowsit,butifitisprecededbyescape,itistreatedasaordinarycharacter.Thesetwosymbolsmustbedistinct. keyword<string>"\\indexentry" Commandwhichtellsmakeindexthatitsargumentisanindexentry. level<char>´ !´ Delimiterdenotinganewlevelofsubitem. quote<char>´ "´ Note:quoteisusedtoescapetheletterwhichimmediatelyfollowsit, butifitisprecededbyescape,itistreatedasaordinarycharacter. Thesetwosymbolsmustbedistinct. 01October1991 -2-MAKEINDEX(1L) MAKEINDEX(1L) rangeclose<char>´ )´ Closingdelimiterindicatingtheendofanexplicitpagerange. rangeopen<char>´ (´ Openingdelimiterindicatingthebeginningofanexplicitpagerange. OUTPUTSTYLESPECIFIERS preamble<string>"\\begin{theindex}\n" Preambleofoutputfile. postamble<string>"\n\n\\end{theindex}\n" Postambleofoutputfile. setpageprefix<string>"\n\\setcounter{page}{" Prefixofcommandwhichsetsthestartingpagenumber. setpagesuffix<string>"}\n" Suffixofcommandwhichsetsthestartingpagenumber. groupskip<string>"\n\n\\indexspace\n" Verticalspacetobeinsertedbeforeanewgroupbegins. headingsflag<string>0 Flagindicatingtreatmentofnewgroupheaders,whichareinserted whenbeforeanewgroup(symbols,numbers,andthe26letters):positivevaluescauseanuppercaselettertobeinsertedbetweenprefix andsuffix,andnegativevaluescausealowercaselettertobeinserted (defaultis0,whichproducesnoheader). headingprefix<string>"" Headerprefixtobeinsertedbeforeanewletterbegins. symheadpositive<string> "Symbols" Headingforsymbolstobeinsertedifheadingsflagispositive. symheadnegative<string> "symbols" Headingforsymbolstobeinsertedifheadingsflagisnegative. numheadpositive<string> "Numbers" Headingfornumberstobeinsertedifheadingsflagispositive. numheadnegative<string> "numbers" Headingfornumberstobeinsertedifheadingsflagisnegative. item0<string>"\n\\item" Commandtobeinsertedbetweentwoprimary(level0)items. item1<string>"\n\\subitem" Commandtobeinsertedbetweentwosecondary(level1)items. item2<string>"\n\\subsubitem" Commandtobeinsertedbetweentwolevel2items. item01<string>"\n\\subitem" Commandtobeinsertedbetweenalevel0itemandalevel1item. itemx1<string>"\n\\subitem" Commandtobeinsertedbetweenalevel0itemandalevel1item, wherethelevel0itemdoesnothaveassociatedpagenumbers. 01October1991 -3-MAKEINDEX(1L) MAKEINDEX(1L) item12<string>"\n\\subsubitem" Commandtobeinsertedbetweenalevel1itemandalevel2item. itemx2<string>"\n\\subsubitem" Commandtobeinsertedbetweenalevel1itemandalevel2item, wherethelevel1itemdoesnothaveassociatedpagenumbers. delim0<string>"," Delimitertobeinsertedbetweenalevel0keyanditsfirstpage number(default:commafollowedbyablank). delim1<string>"," Delimitertobeinsertedbetweenalevel1keyanditsfirstpage number(default:commafollowedbyablank). delim2<string>"," Delimitertobeinsertedbetweenalevel2keyanditsfirstpage number(default:commafollowedbyablank). delimn<string>"," Delimitertobeinsertedbetweentwopagenumbersforthesamekey inanylevel(default:commafollowedbyablank). delimr<string>"--" Delimitertobeinsertedbetweenthestartingandendingpagenumbersofarange. delimt<string>"" Delimitertobeinsertedattheendofapagelist.Thisdelimiterhas noeffectonentrieswhichhavenoassociatedpagelist. encapprefix<string>"\\" Firstpartofprefixforthecommandwhichencapsulatesthepage number. encapinfix<string>"{" Secondpartofprefixforthecommandwhichencapsulatesthepage number. encapsuffix<string>"}". Suffixforthecommandwhichencapsulatesthepagenumber. linemax<number>72 Maximumlengthofalineintheoutput,beyondwhichalinewraps. indentspace<string>"\t\t" Spacetobeinsertedinfrontofawrappedline(default:twotabs). indentlength<number>16 Lengthofindentspace(default:16,equivalentto2tabs). EXAMPLES TEXEXAMPLE Thefollowingexampleshowsastylefilecalledbook.ist,whichdefinesanindexforabookwhich canbeformattedindependentlyofthemainsource:

preamble
"\\documentstyle[12pt]{book}
\\begin{document}
\\begin{theindex}
{\\small\n"
postamble
"\n\n}
\\end{theindex}

01October1991 -4-MAKEINDEX(1L) MAKEINDEX(1L)

\\end{document}\n"

Assumingthataparticularbookstylerequirestheindex(aswellasanychapters)tostartfrom anoddpagenumber,andthattheinputfileisnamedfoo.idx,thefollowingcommandlineproducesoutputinfilefootmp.ind:

makeindex-sbook.ist-ofootmp.ind-poddfoo

Hereanon-defaultoutputfilenameisusedtoavoidclobberingtheoutputforthebookitself (presumablyfoo.dvi,whichwouldhavebeenthedefaultnamefortheindexoutputfile!). TROFFEXAMPLE Asamplecontrolfileforcreatinganindex,whichwewillassumeresidesinthefilesample.ist:

keyword"IX:"
preamble
".\\\"startofindexoutput
\".\\\"entertwocolumnmode
.2C
.SH
.ce
INDEX
.XS
INDEX
.XE
.R
.ps9p
.vs11p
.sp
.deI1
.ti0.25i
..
.deI2
.ti0.5i
.."
postamble"\n.\\\"endofindexoutput"
setpageprefix"\n.nr%"
setpagesuffix""
groupskip"\n.sp1.0"
headingsflag1
headingprefix"\n.IS\n"
headingsuffix"\n.IE"
item0"\n.br\n"
item1"\n.I1\n"
item2"\n.I2\n"
item01"\n.I1\n"
itemx1"\n.I1\n"
item12"\n.I2\n"
itemx2"\n.I2\n"
delim0","
delim1","
delim2","
delimr"-"
delimt"."
encapprefix"\\fB"
encapinfix""
encapsuffix"\\fP"
indentspace""

01October1991 -5-MAKEINDEX(1L) MAKEINDEX(1L)

indentlength0

Thelocalmacropackagemayrequiremodification,asinthisexampleofanextensiontothe−ms macros(notethatatsomesites,thismacroshouldreplaceapre-existingmacroofthesame name):

.
.deIX
.ie'\\n(.z''.tmIX:\\$1\\$2\\$3\\$4\\$5\\$6\\$7\\$8\\$9{\\n(PN}
.el\\!.IX\\$1\\$2\\$3\\$4\\$5\\$6\\$7\\$8\\$9{\\n(PN}
..

(notethatthestring{\\n(PN}isseparatedfromtherestofthelinebyatab.Ifyourlocalmacro packagedoesnotcontainthisextension,justincludethoselinesatthebeginningofyourfile. Hereisasimpletroff(1)inputfile,whichwewillassumeisnamedsample.txt:

Thisisasamplefiletotestthe\fImakeindex\fP(1L)
program,andsee
.IX{indexing!programs!Clanguage}
.IX{makeindex@\fImakeindex\fP(1L)}
.bp
.rs
.IX{Knuth}
.IX{typesetting!computer-aided}
howwellitfunctionsinthe\fItroff\fP(1)environment.

Notethatindexentriesareindicatedbythe.IXmacro,whichcausesthefollowingtexttobe writtentostdoutalongwiththecurrentpagenumber. CREATINGTHEINDEXFILEINTHEBOURNESHELL Tocreateaninputfileformakeindex,intheBourneshellenvironment,dotheequivalentat yoursiteofthecommand:

psroff-ms-Tpsc-tsample.txt>/dev/null2>sample.tmp

Somesiteswillrequireditroffinsteadofpsroff.Tofilteroutanygenuineerrormessages,invoke grep(1):

grep'^IX:'sample.tmp>sample.idx

CREATINGTHEINDEXFILEUSINGUCSFENHANCEDTROFF/TRANSCRIPT WithUCSFEnhancedtroff/TRANSCRIPT,the−Ioptionofpsroff(1L)canproducebothformatter outputandanindexfile:

psroff-ms-Isample.inp-Tpscsample.txt

Ifitiswishedtosuppresstheformatteroutput:

psroff-ms-Isample.inp-Tpsc-tsample.txt>/dev/null

COMPLETINGTHEINDEX Anyoftheaboveproceduresleavestheinputformakeindexinsample.inp.Thenextstepisto invokemakeindex:

makeindex-ssample.istsample.idx

Thisleavestroff(1)-readyoutputinthefilesample.ind. ORDERING Bydefault,makeindexassumeswordordering;ifthe−loptionisineffect,letterorderingisused. Inwordordering,ablankprecedesanyletterinthealphabet,whereasinletterordering,itdoes notcountatall.Thisisillustratedbythefollowingexample: wordorderletterorder sealionseal 01October1991 -6-MAKEINDEX(1L) MAKEINDEX(1L) sealsealion Numbersarealwayssortedinnumericorder.Forinstance, 9(nine),123 10(ten),seeDerek,Bo Lettersarefirstsortedwithoutregardtocase;whenwordsareidentical,theuppercaseversion precedesitslowercasecounterpart. Aspecialsymbolisdefinedheretobeanycharacternotappearingintheunionofdigitsandthe Englishalphabeticcharacters.Patternsstartingwithspecialsymbolsprecedenumbers,which precedepatternsstartingwithletters.Asaspecialcase,astringstartingwithadigitbutmixed withnon-digitsisconsideredtobeapatternstartingwithaspecialcharacter. SPECIALEFFECTS Entriessuchas

\indexentry{alpha}{1}
\indexentry{alpha!beta}{3}
\indexentry{alpha!beta!gamma}{10}

intheinputfilewillbeconvertedto

\itemalpha,1
\subitembeta,3
\subsubitemgamma,10

intheoutputindexfile.Noticethatthelevelsymbol(‘!’)isusedabovetodelimithierarchical levels. Itispossibletomakeanitemappearinadesignatedformbyusingtheactual(‘@’)operator. Forinstance,

\indexentry{alpha@{\italpha\/}}{1}

willbecome

\item{\italpha\/},1

afterprocessing.Thepatternpreceding‘@’isusedassortkey,whereastheonefollowingitis writtentotheoutputfile.Notethattwoappearancesofthesamekey,onewithandonewithout theactualoperator,areregardedasdistinctentries. Theitem,subitem,andsubsubitemfieldsmayhaveindividualsortkeys:

\indexentry{aa@{\itaa\/}!bb@{\itbb\/}!cc@{\itcc\/}}{1}

Thiswillbeconvertedto

\item{\itaa},1
\subitem{\itbb},3
\subsubitem{\itcc},10

Itispossibletoencapsulateapagenumberwithadesignatedcommandusingtheencap(‘|’) operator:

\indexentry{alpha|bold}{1}

willbeconvertedto

\itemalpha,\bold{1}

where,withasuitabledefinitionforTEX,\bold{n}willexpandto{\bfn}.Inthisexample,the threeoutputattributesassociatedwithpageencapsulationencapprefix,encapinfix,and encapsuffix,correspondtobackslash,leftbrace,andrightbrace,respectively.Thismechanism allowspagenumberstobesetindifferentfonts.Forexample,thepagewherethedefinitionofa keywordappearscanbeinonefont,thelocationofaprimaryexamplecanbeinanotherfont, 01October1991 -7-MAKEINDEX(1L) MAKEINDEX(1L) andotherappearancesinyetathirdfont. Theencapoperatorcanalsobeusedtocreatecrossreferencesintheindex:

\indexentry{alpha|see{beta}}{1}

willbecome

\itemalpha,\see{beta}{1}

intheoutputfile,where

\see{beta}{1}

willexpandto

{\itsee\/}beta

Notethatinacrossreferencelikethisthepagenumberdisappears. Apairofencapconcatenatedwithrangeopen(‘|(’)andrangeclose(‘|)’)createsanexplicit pagerange:

\indexentry{alpha|(}{1}
\indexentry{alpha|)}{5}

willbecome

\itemalpha,1—5

Intermediatepagesindexedbythesamekeywillbemergedintotherangeimplicitly.Thisis especiallyusefulwhenanentiresectionaboutaparticularsubjectistobeindexed,inwhichcase onlytherangeopeningandclosingoperatorsneedtobeinsertedatthebeginningandendofthe section.Explicitpagerangeformationcanalsoincludeanextracommandtosetthepagerange inadesignatedfont:

\indexentry{alpha|(bold}{1}
\indexentry{alpha|)}{5}

willbecome

\itemalpha,\bold{1--5}

Severalpotentialproblemsareworthmentioning.First,entrieslike

\indexentry{alpha|(}{1}
\indexentry{alpha|bold}{3}
\indexentry{alpha|)}{5}

willbeinterpretedas

\itemalpha,\bold{3},1--5

butwithawarningmessageinthetranscriptaboutencounteringaninconsistentpageencapsulator.AnexplicitrangebeginninginaRomanpagenumberandendinginArabicisalsoconsidered anerror.Inthisinstance,(ifpossible)therangeisbrokenintotwosubranges,oneinRomanand theotherinArabic.Forinstance,

\indexentry{alpha|(}{i}
\indexentry{alpha}{iv}
\indexentry{alpha}{3}
\indexentry{alpha|)}{7}

willbeturnedinto

\itemalpha,i--iv,3--7

withawarningmessageinthetranscriptfilecomplainingaboutanillegalrangeformation. Finally,everyspecialsymbolmentionedinthissectionmaybeescapedbythequoteoperator (‘"’).Thus 01October1991 -8-MAKEINDEX(1L) MAKEINDEX(1L)

\indexentry{alpha"@beta}{1}

willactuallybecome

\itemalpha@beta,1

asaresultofexecutingmakeindex.Thequotingpowerofquoteiseliminatedifitisimmediately precededbyescape(‘\’).Forexample,

\indexentry{f\"ur}{1}

becomes

\itemf\"ur,1

whichrepresentsanumlaut-accented‘u’totheTEXfamilyofprocessors. Fromversion2.11ofmakeindex,thequoteoperatormayquoteanycharacterintherange1... 255.Character0isexcludedbecauseitisusedinternallyinthemakeindexsourcecodeasa stringterminator.Withthischange,sortkeyscanbecreatedforalleight-bitcharactersexcept0. Thesortingorderis punctuationcharacters(inASCIIorder), digits, controlcharacters(1...31), space(32), letters(ignoringcase), characters127...255. HereisanexampleshowingtheindexingofallprintableASCIIcharactersotherthanlettersand digits,assumingthedefaultTEXformat.Forconvenience,thepagenumberreferencesarethe correspondingASCIIordinalvalues.

\indexentry{"@"(space)}{32}
\indexentry{"!@"!(exclamationpoint)}{33}
\indexentry{""@""(quotationmark))}{34}
\indexentry{"#@"\#(sharpsign)}{35}
\indexentry{"$@"\$(dollarsign)}{36}
\indexentry{"%@"\%(percentsign)}{37}
\indexentry{"&@"\&(ampersand)}{38}
\indexentry{"<@"$<$(leftanglebracket)}{60}
\indexentry{"=@"=(equals)}{61}
\indexentry{">@"$>$(rightanglebracket)}{62}
\indexentry{"?@"?(query)}{63}
\indexentry{"@@"@(atsign)}{64}
\indexentry{"[@"[(leftsquarebracket)}{91}
\indexentry{"\@"\verb=\=(backslash)}{92}
\indexentry{"]@"](rightsquarebracket)}{93}
\indexentry{"^@"\verb=^=(caret)}{94}
\indexentry{"@"\verb==(underscore)}{95}
\indexentry{"`@"\verb=~=(graveaccent)}{96}
\indexentry{"{@"\"{(leftbrace)}{123}
\indexentry{"|@"\verb="|=(verticalbar)}{124}
\indexentry{"}@"\"}(rightbrace)}{125}
\indexentry{"~@"\verb=~=(tilde)}{126}

Charactersintheactualfieldsfollowingthe‘@’characterwhichhavespecialsignificancetoTEX mustberepresentedascontrolsequences,orasmathmodecharacters.Noteparticularlyhowthe entriesfortheatsign,leftandrightbraces,andtheverticalbar,arecoded.Theindexfileoutput 01October1991 -9-MAKEINDEX(1L) MAKEINDEX(1L) bymakeindexforthisexamplelookslikethis:

\begin{theindex}
\item!(exclamationpoint),33
\item"(quotationmark)),34
\item\#(sharpsign),35
\item\$(dollarsign),36
\item\%(percentsign),37
\item\&(ampersand),38
\item$<$(leftanglebracket),60
\item=(equals),61
\item$>$(rightanglebracket),62
\item?(query),63
\item@(atsign),64
\item[(leftsquarebracket),91
\item\verb=\=(backslash),92
\item](rightsquarebracket),93
\item\verb=^=(caret),94
\item\verb==(underscore),95
\item\verb=~=(graveaccent),96
\item\{(leftbrace),123
\item\verb=|=(verticalbar),124
\item\}(rightbrace),125
\item\verb=~=(tilde),126
\indexspace
\item(space),32
\end{theindex}

FILES /usr/local/bin/makeindexexecutablefile /usr/local/lib/tex/macros/idxmac-amstex.tex TEXmacrofileusedbymakeindex /usr/local/lib/tex/macros/idxmac.tex TEXmacrofileusedbymakeindex /usr/local/lib/tex/macros/makeidx.doc TEXmacrofileusedbymakeindex /usr/local/lib/tex/macros/makeidx.sty TEXmacrofileusedbymakeindex SEEALSO ditroff(1L),latex(1L),make.index(1L),qsort(3),tex(1L),troff(1L) UCSFEnhancedtroff/TRANSCRIPT—AnOverview,R.P.C.RodgersandConradHuang,LSMB TechnicalReport90-2,UCSFSchoolofPharmacy,SanFrancisco,1990. IndexPreparationandProcessing,PehongChenandMichaelA.Harrison,Software:Practiceand Experience,19(9),897–915,September1988. AutomatingIndexPreparation,PehongChenandMichaelA.Harrison.TechnicalReport87/347, ComputerScienceDivision,UniversityofCalifornia,Berkeley,1987(aLATEXdocumentsupplied withmakeindex). MakeIndex:AnIndexProcessorforLATEX,LeslieLamport,February1987(aLATEXdocument 01October1991 -10-MAKEINDEX(1L) MAKEINDEX(1L) suppliedwithmakeindex). ToolsforPrintingIndices,JonL.BentleyandBrianW.Kernighan,ElectronicPublishing— Origination,Dissemination,andDesign,1(1),3–18,June1988(alsoavailableas:Computing ScienceTechnicalReportNo.128,AT&TBellLaboratories,MurrayHill,NJ07974,1986). AUTHOR PehongChen,Chen&HarrisonInternationalSystems,Inc.PaloAlto,California,USA <chen@renoir.berkeley.edu>. Manualpageextensivelyrevisedandcorrected,andtroff(1)examplescreatedbyRickP.C. Rodgers,UCSFSchoolofPharmacy<rodgers@cca.ucsf.edu>. ACKNOWLEDGMENTS LeslieLamportcontributedsignificantlytothedesign.MichaelHarrisonprovidedvaluablecommentsandsuggestions.NelsonBeebeimprovedontheportableversion,andmaintainsthesource distributionfortheTEXUsersGroup.AndreasBrosigcontributedtotheGermanwordordering. Themodificationtothe−msmacroswasderivedfromamethodproposedbyRaviSethiof AT&TBellLaboratories.TheLOGandCONTRIBfilesinthemakeindexsourcedistribution recordothercontributions. 01October1991 -11-